//
//  HMHomeTableViewController.swift
//  微博
//
//  Created by 郭鉴增 on 2016/12/1.
//  Copyright © 2016年 郭鉴增. All rights reserved.
//

import UIKit
import YYModel
private let HMHomeTableViewCellIdentifier = "HMHomeTableViewCellIdentifier"

class HMHomeTableViewController: HMVisitorTableViewController {

    
    //对应的数据模型(viewModel)
    fileprivate lazy var homeStatusViewModel = HMHomeStatusViewModel()
    
    override func viewDidLoad() {
        super.viewDidLoad()

        if isLogin == false {
            //修改访客视图信息
            visitorView?.updateVisitorInfo(imageName: nil, message: nil)
        } else {
            setupTableView()
            //表示登录
            loadData()
        }
        
    }
    private func setupTableView() {
        //注册cell
        tableView.register(HMStatusTableViewCell.self, forCellReuseIdentifier: HMHomeTableViewCellIdentifier)
//        /设置高度  自动计算
        tableView.rowHeight = UITableViewAutomaticDimension
        //预估高度越接近真是高度越好
        tableView.estimatedRowHeight = 200
    }
    //加载微博数据
    private func loadData() {
        //去viewmodel加载数据
        homeStatusViewModel.loadData { (isSuccess) in
            if isSuccess {
                self.tableView.reloadData()
            }
        }
        
        //代码已经抽取到HMHomeStatusViewModel
//        HMNetworkTools.sharedTools.requestStatus { (response, error) in
//            if error != nil {
//                print(error!)
//                return
//            }
//            
//            //代码执行到此表示数据请求成功
//            let dic = response as! [String: Any]
//            let statusDicArray = dic["statuses"] as! [[String: Any]]
//            
//            //使用YYModel完成数组字典转成数组模型
//            let modelArray =  NSArray.yy_modelArray(with: HMStatus.self, json: statusDicArray) as! [HMStatus]
//            
//            //数据准备好了
//            self.statusList = modelArray
//            
//            self.tableView.reloadData()
//        }
    }

}

//MARK: - uitableviewDATASource
extension HMHomeTableViewController {
    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return homeStatusViewModel.statusList.count
    }
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: HMHomeTableViewCellIdentifier, for: indexPath) as! HMStatusTableViewCell
        
        //绑定数据 -> viewmodel
        let viewModel = homeStatusViewModel.statusList[indexPath.row]
        //绑定viewModel数据
        cell.statusViewModel = viewModel
        
        return cell
    }
}





